Wireless communication devices including cellular telephones, personal digital assistants (PDAs) and the like often store data on the wireless devices for applications provided by the device. The data may assist users with operation of the wireless devices or provide portable information. Such data may include an address book, appointment calendar, task list, memos and a dictionary to assist with text entry using the device, among other data. Often this data is also stored remotely from the wireless device such as on an enterprise server, a personal computer or other remote storage device. For example, address book and calendar data may be shared between applications on the mobile wireless device and similar applications provided in an enterprise context. Data is typically stored in a database comprising tables. A table (e.g. for an address book) may store a plurality of records (e.g. where a record defines a contact with address and communication particulars) having one or more fields for storing data (e.g. First name, Middle name, Surname, Title, Company, Address, Business Telephone Number, Fax, Home Number, Email address, etc.).
Data may change in a variety of ways. A new record may be added or an existing record deleted. Data within one or more fields may be changed. Occasionally, a new field may be added or an existing field deleted. Fields in a record may be used to define a key useful for identifying the record within the database table. Changes to the key may also be desired.
Often changes to the data on one or more of the wireless device and the remote storage device need to be synchronized to reflect the desired state of the data on all of the devices. Synchronization of the data may occur by communicating changes made to the data between the wireless device and remote storage device and resolving any conflicts. Synchronization may be performed wirelessly (i.e. over the air) or in a wired manner if the wireless device may be coupled to the remote storage device using a serial or other wire-based connection. Synchronization is typically performed in accordance with a protocol for establishing communications between the wireless and remote storage devices and for communicating the changes. Defining a protocol which is flexible and permits a wireless device to make changes to record fields and keys is desirable.